/*
 * @Descripttion: Vango ERP
 * @version: 1.0
 * @Author: 朱涛（梅溪）
 * @Date: 2021-06-13 22:20:58
 * @LastEditors: 朱涛
 * @LastEditTime: 2021-07-16 10:04:49
 */
// 屏幕适配文件
class devicePixelRatio {
    constructor() {}

    //获取系统类型
    getSystem() {
        // let flag = false;
        var agent = navigator.userAgent.toLowerCase()
            //针对windows处理
            // if (agent.indexOf('windows') >= 0) {
            //     return true
            // }
        return true
    }

    //监听方法兼容写法
    addHandler(element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false)
        } else if (element.attachEvent) {
            element.attachEvent('on' + type, handler)
        } else {
            element['on' + type] = handler
        }
    }

    //校正浏览器缩放比例
    correct() {
        //页面devicePixelRatio（设备像素比例）变化后，计算页面body标签zoom修改其大小，来抵消devicePixelRatio带来的变化。
        // document.getElementsByTagName('body')[0].style.zoom =
        //     1 / window.devicePixelRatio

        const baseSize = 192
        const scale = document.documentElement.clientWidth / 1920
            // 设置页面根节点字体大小
        document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
        document.getElementsByTagName('body')[0].style.fontSize = "14px"
    }

    //监听页面缩放
    watch() {
        const that = this
        this.addHandler(window, 'resize', function() {
            //注意这个方法是解决全局有两个window.resize
            //重新校正
            that.correct()
        })
    }
    init() {
        if (this.getSystem()) {
            //判断设备，目前只在windows系统下校正浏览器缩放比例
            //初始化页面校正浏览器缩放比例
            this.correct()
                //开启监听页面缩放
            this.watch()
        }
    }
}

export default devicePixelRatio